package com.ruoyi.system.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.system.domain.Bo.UsersBo;
import com.ruoyi.system.domain.Users;
import com.ruoyi.system.domain.Vo.LoginUserVo;
import com.ruoyi.system.domain.Vo.UsersVo;

/**
 * 用户管理Service接口
 * 
 * @author ruoyi
 * @date 2022-08-18
 */
public interface IUsersService extends IService<Users>
{
    /**
     * 注册用户
     * @param usersVo
     * @return
     */
    public boolean registerUser(UsersVo usersVo);

    /**
     * 注册判断用户输入手机号是否存在
     * @param userPhone
     */
    public void checkMobileUnique(String userPhone);

    /**
     * 修改用户
     * @param usersVo
     * @return
     */
    public boolean updateUser(UsersVo usersVo);

    /**
     * 修改密码判断用户输入手机号是否存在
     * @param userPhone
     */
    public void updateCheckMobileUnique(String userPhone);


    /**
     * 查询用户管理
     * 
     * @param userId 用户管理主键
     * @return 用户管理
     */
    public Users selectUsersByUserId(Integer userId);

    /**
     * 查询用户管理列表
     * 
     * @param users 用户管理
     * @return 用户管理集合
     */
    public List<Users> selectUsersList(Users users);

    /**
     * 新增用户管理
     * 
     * @param usersBo 用户管理
     * @return 结果
     */
    public int insertUsers(UsersBo usersBo);

    /**
     * 修改用户管理
     * 
     * @param users 用户管理
     * @return 结果
     */
    public int updateUsers(Users users);

    /**
     * 批量删除用户管理
     * 
     * @param userIds 需要删除的用户管理主键集合
     * @return 结果
     */
    public int deleteUsersByUserIds(Integer[] userIds);

    /**
     * 删除用户管理信息
     * 
     * @param userId 用户管理主键
     * @return 结果
     */
    public int deleteUsersByUserId(Integer userId);

    /**
     * 登录验证方法
     * @param usersVo
     * @return
     */
    LoginUserVo userLogin(UsersVo usersVo);
}
